package top.pin90.config;

import top.pin90.DayRange;
import top.pin90.HolidayConfig;

import java.util.ArrayList;
import java.util.List;

/**
 * 2022假期配置（数据来自国务院<a href="http://www.gov.cn/zhengce/content/2022-12/08/content_5730844.htm">www.gov.cn</a>）
 * 一、元旦：2022年12月31日至2023年1月2日放假调休，共3天。
 *
 * 二、春节：1月21日至27日放假调休，共7天。1月28日（星期六）、1月29日（星期日）上班。
 *
 * 三、清明节：4月5日放假，共1天。
 *
 * 四、劳动节：4月29日至5月3日放假调休，共5天。4月23日（星期日）、5月6日（星期六）上班。
 *
 * 五、端午节：6月22日至24日放假调休，共3天。6月25日（星期日）上班。
 *
 * 六、中秋节、国庆节：9月29日至10月6日放假调休，共8天。10月7日（星期六）、10月8日（星期日）上班。
 */
public class HolidayConfig2023 implements HolidayConfig {
    @Override
    public int getYear() {
        return 2023;
    }

    @Override
    public int getRestMode() {
        return 2;
    }

    @Override
    public int getVersion() {
        return 3;
    }

    @Override
    public String getDesc() {
        return "2023年日历数据";
    }

    public List<DayRange> getBusyDay() {
        List<DayRange> busyDay = new ArrayList<>();
        busyDay.add(DayRange.of("0128", "0129", "春节调休"));
        busyDay.add(DayRange.of("0423", "0506", "劳动节调休"));
        busyDay.add(DayRange.of("0625", "0625", "端午节调休"));
        busyDay.add(DayRange.of("1007", "1008", "国庆节调休"));

        return busyDay;
    }

    public List<DayRange> getRestDay() {
        List<DayRange> restDay = new ArrayList<>();
        restDay.add(DayRange.of("0101", "0102", "元旦"));
        restDay.add(DayRange.of("0121", "0127", "春节"));
        restDay.add(DayRange.of("0405", "0405", "清明节"));
        restDay.add(DayRange.of("0429", "0503", "劳动节"));
        restDay.add(DayRange.of("0622", "0624", "端午节"));
        restDay.add(DayRange.of("0910", "0912", "中秋节"));
        restDay.add(DayRange.of("0929", "1006", "国庆节"));

        return restDay;
    }
}
